package com.member.shop.domain;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.member.common.annotation.Excel;
import com.member.common.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;

import java.util.Date;
import java.util.List;

/**
 * 营销页面分类定义对象 sys_biz_market_page_category
 *
 * @author lixinchen
 * @date 2025-02-14
 */
@Data
@SuperBuilder
@AllArgsConstructor
@NoArgsConstructor
@TableName("sys_biz_market_page_category")
public class SysBizMarketPageCategory extends BaseEntity {

    private static final long serialVersionUID = 1L;


    /**
     * 唯一id
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 标题
     */
    @Excel(name = "标题")
    private String title;

    /**
     * 业务类型（0: 优惠券 1：商品）
     */
    @Excel(name = "业务类型", readConverterExp = "0=:,优=惠券,1=：商品")
    private Integer bussType;


    /**
     * 头部标题img
     */
    @Excel(name = "头部标题img")
    private String headlineImg;


    /**
     * 优惠券图片img(领取前)
     */
    @Excel(name = "优惠券图片img(领取前)")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String couponImgFront;


    /**
     * 优惠券图片img(领取后)
     */
    @Excel(name = "优惠券图片img(领取后)")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String couponImgAfter;


    /**
     * 优惠券轮播类型（1.一页一条 2.一页两条）
     */
    @Excel(name = "优惠券轮播类型", readConverterExp = "1=.一页一条,2=.一页两条")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Integer couponPageType;


    /**
     * 优惠券id(逗号隔开)
     */
    @Excel(name = "优惠券id(逗号隔开)")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String couponId;


    /**
     * 商品顶部的img
     */
    @Excel(name = "商品顶部的img")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String bgTopImg;


    /**
     * 背景类型(1.图片 2.颜色)
     */
    @Excel(name = "背景类型(1.图片 2.颜色)")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Integer categoryBgType;


    /**
     * 背景图片
     */
    @Excel(name = "背景图片")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String categoryBgPic;


    /**
     * 商品结构(1.上下结构 ,2.左右结构)
     */
    @Excel(name = "商品结构(1.上下结构 ,2.左右结构)")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Integer goodsStructure;


    /**
     * 商品排版(1.一行两列,2.一行三列）
     */
    @Excel(name = "商品排版(1.一行两列,2.一行三列）")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Integer goodsLayout;


    /**
     * 轮播类型（0.全部展示 1.一页4条  2.一页6条 3.一页9条）
     */
    @Excel(name = "轮播类型", readConverterExp = "0=.全部展示,1=.一页4条,2=.一页6条,3=.一页9条")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Integer carouselType;


    /**
     * 活动开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "活动开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Date activityStartTime;


    /**
     * 活动截止时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "活动截止时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Date activityEndTime;


    /**
     * 经度(倒计时对应图片)
     */
    @Excel(name = "经度(倒计时对应图片)")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String longitude;


    /**
     * 纬度(倒计时对应图片)
     */
    @Excel(name = "纬度(倒计时对应图片)")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String latitude;


    /**
     * 活动类型(1.限时特惠 2.其他)
     */
    @Excel(name = "活动类型(1.限时特惠 2.其他)")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Long activityType;


    /**
     * 商品id(逗号隔开)
     */
    @Excel(name = "商品id(逗号隔开)")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String goodsId;


    /**
     * 是否上架(0:上架，1:下架)
     */
    @Excel(name = "是否上架(0:上架，1:下架)")
    private Integer displayed;


    /**
     * 排序
     */
    @Excel(name = "排序")
    private Long orderNum;


    /**
     * 是否删除(0：未删除，1：删除)
     */
    @Excel(name = "是否删除(0：未删除，1：删除)")
    private Integer deleted;




    @TableField(exist = false)
    private List<SysBizCoupon> couponList;

    @TableField(exist = false)
    private List<SysBizGoodsSku> goodsList;

}
